This disclosure relates generally to test case generation for software testing.
Given a piece of software with an API or textual interface, in general two different approaches currently exist for testing the software. One approach includes defining test cases manually, as well as manual evaluation of test results. The other approach includes automatic generation of test cases. All possible input parameter combinations of an interface are called the “test area,” number of possible combinations of input parameters of an interface increases exponentially with the number of input parameters. Thus, for large pieces of software, or those pieces of software having a large number of input parameters, it becomes challenging to generate a test case that adequately relates to the test area.
Automatically generated test cases should at least touch all parts of the test area. Therefore, automatically generated test cases must not correlate parameter values of independent parameters. Otherwise, the process by which the test cases are generated will systematically leave out parts of the test area. What is needed is a way to reach a statistically even coverage of the test area.